home *** CD-ROM | disk | FTP | other *** search
- /*$T api_get.c GC 1.137 08/09/02 17:47:18 */
-
- /*$6
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- */
-
- #include "zgl.h"
-
- static const GLubyte *__glVendor = "Ruben Monteiro";
- static const GLubyte *__glRenderer = "TinyGL software engine";
- static const GLubyte *__glVersion = "0.4";
- static const GLubyte *__glExtensions = "";
-
- /* */
- void GLAPIENTRY glGetIntegerv(GLenum pname, GLint *params) {
- GLContext *c = gl_get_context();
- /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
- switch((int) pname) {
- case GL_VIEWPORT:
- params[0] = c->viewport.xmin;
- params[1] = c->viewport.ymin;
- params[2] = c->viewport.xsize;
- params[3] = c->viewport.ysize;
- break;
- case GL_MAX_MODELVIEW_STACK_DEPTH:
- *params = MAX_MODELVIEW_STACK_DEPTH;
- break;
- case GL_MAX_PROJECTION_STACK_DEPTH:
- *params = MAX_PROJECTION_STACK_DEPTH;
- break;
- case GL_MAX_LIGHTS:
- *params = MAX_LIGHTS;
- break;
- case GL_MAX_TEXTURE_SIZE:
- *params = 256; /* not completely true, but... */
- break;
- case GL_MAX_TEXTURE_STACK_DEPTH:
- *params = MAX_TEXTURE_STACK_DEPTH;
- break;
- default:
- gl_fatal_error("glGet: option not implemented");
- break;
- }
- }
-
- /* */
- void GLAPIENTRY glGetFloatv(GLenum pname, GLfloat *params) {
- int i;
- int mnr = 0; /* just a trick to return the correct matrix */
- GLContext *c = gl_get_context();
- switch(pname) {
- case GL_TEXTURE_MATRIX:
- mnr++;
- case GL_PROJECTION_MATRIX:
- mnr++;
- case GL_MODELVIEW_MATRIX: {
- float *p = &c->matrix_stack_ptr[mnr]->m[0][0];;
- for(i = 0; i < 4; i++) {
- *params++ = p[0];
- *params++ = p[4];
- *params++ = p[8];
- *params++ = p[12];
- p++;
- }
- }
- break;
- case GL_LINE_WIDTH:
- *params = 1.0f;
- break;
- case GL_LINE_WIDTH_RANGE:
- params[0] = params[1] = 1.0f;
- break;
- case GL_POINT_SIZE:
- *params = 1.0f;
- break;
- case GL_POINT_SIZE_RANGE:
- params[0] = params[1] = 1.0f;
- default:
- fprintf(stderr, "warning: unknown pname in glGetFloatv()\n");
- break;
- }
- }
-
- const GLubyte * GLAPIENTRY glGetString (GLenum name) {
- switch(name) {
- case GL_VENDOR: return __glVendor;
- case GL_RENDERER: return __glRenderer;
- case GL_VERSION: return __glVersion;
- case GL_EXTENSIONS: return __glExtensions;
- default: fprintf(stderr, "warning: unknown name in glGetString()\n"); break;
- }
- return NULL;
- }
-